package cn.smartorigin.soas.printserver;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.font.FontRenderContext;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;

public class PrintServer {

	/**
	 * @param Graphic 		指明打印的图形环境
	 * @param PageFormat	指明打印页格式（页面大小以点为计量单位，1点为1英才的1/72，1英寸为25.4毫米。A4纸大致为595×842点）
	 * @param page			指明页号
	 */
//	public int print(Graphics g, PageFormat pf, int page) throws PrinterException
//	{
//		Graphics2D g2 = (Graphics2D)g;
//		g2.setPaint(Color.black); 		//设置打印颜色为黑色
//		
//		//当打印页号大于需要打印的总页数时，打印工作结束
//		if (page >= PAGES){
//			 return Printable.NO_SUCH_PAGE;
//		}
//		
//		g2.translate(pf.getImageableX(), pf.getImageableY());	//转换坐标，确定打印边界
//	    drawCurrentPageText(g2, pf, page); 						//打印当前页文本
//	    return Printable.PAGE_EXISTS; 							//存在打印页时，继续打印工作
//			 
//	}
	
	/**
	 * 打印指定页号的具体文本内容
	 */
//	  private void drawCurrentPageText(Graphics2D g2, PageFormat pf, int page)
//	  {
//		String s = getDrawText(printStr)[page];// 获取当前页的待打印文本内容
//		// 获取默认字体及相应的尺寸
//		FontRenderContext context = g2.getFontRenderContext();
//		Font f = area.getFont();
//		String drawText;
//		float ascent = 16; // 给定字符点阵
//		int k, i = f.getSize(), lines = 0;
//		while (s.length() > 0 && lines < 54) // 每页限定在54行以内
//		{
//			k = s.indexOf('\n'); // 获取每一个回车符的位置
//			if (k != -1) // 存在回车符
//			{
//				lines += 1; // 计算行数
//				drawText = s.substring(0, k); // 获取每一行文本
//				g2.drawString(drawText, 0, ascent); // 具体打印每一行文本，同时走纸移位
//				if (s.substring(k + 1).length() > 0) {
//					s = s.substring(k + 1); // 截取尚未打印的文本
//					ascent += i;
//				}
//			} else // 不存在回车符
//			{
//				lines += 1; // 计算行数
//				drawText = s; // 获取每一行文本
//				g2.drawString(drawText, 0, ascent); // 具体打印每一行文本，同时走纸移位
//				s = ""; // 文本已结束
//			}
//		}
//	}
	  
	/**
	 * 计算需要打印的总页数
	 * @param curStr
	 * @return
	 */
//	public int getPagesCount(String curStr) {
//		int page = 0;
//		int position, count = 0;
//		String str = curStr;
//		while (str.length() > 0) // 文本尚未计算完毕
//		{
//			position = str.indexOf('\n'); // 计算回车符的位置
//			count += 1; // 统计行数
//			if (position != -1)
//				str = str.substring(position + 1); // 截取尚未计算的文本
//			else
//				str = ""; // 文本已计算完毕
//		}
//		if (count > 0)
//			page = count / 54 + 1; // 以总行数除以54获取总页数
//		return page; // 返回需打印的总页数
//	}
	
}
